package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiSubsidyApplicationPayRecord;
import com.minimalist.common.entity.lindi.vo.subsidyapplicationpayrecord.LindiSubsidyApplicationPayRecordQueryVO;
import com.minimalist.common.entity.lindi.vo.subsidyapplicationpayrecord.LindiSubsidyApplicationPayRecordVO;
import com.mybatisflex.core.service.IService;

/**
 * 林地指标交易平台_补贴申请支付记录表 服务层。
 *
 * @author 11987
 * @since 2025-06-09
 */
public interface LindiSubsidyApplicationPayRecordService extends IService<
        LindiSubsidyApplicationPayRecord>{

    /**
     * 添加补贴申请支付记录
     *
     * @param subsidyApplicationPayRecordVO 补贴申请支付记录VO
     */
    void addSubsidyApplicationPayRecord(LindiSubsidyApplicationPayRecordVO subsidyApplicationPayRecordVO);

    /**
     * 根据补贴申请支付记录ID删除补贴申请支付记录
     *
     * @param subsidyApplicationPayRecordId 补贴申请支付记录ID
     */
    void deleteSubsidyApplicationPayRecordBySubsidyApplicationPayRecordId(Long subsidyApplicationPayRecordId);

    /**
     * 根据补贴申请支付记录ID更新补贴申请支付记录
     *
     * @param subsidyApplicationPayRecordVO 补贴申请支付记录VO
     */
    void updateSubsidyApplicationPayRecordBySubsidyApplicationPayRecordId(
            LindiSubsidyApplicationPayRecordVO subsidyApplicationPayRecordVO);

    /**
     * 分页查询补贴申请支付记录列表
     *
     * @param queryVO 查询条件
     * @return 分页结果
     */
    PageResp<LindiSubsidyApplicationPayRecordVO> getPageSubsidyApplicationPayRecordList(
            LindiSubsidyApplicationPayRecordQueryVO queryVO);

    /**
     * 根据补贴申请支付记录ID查询补贴申请支付记录
     *
     * @param subsidyApplicationPayRecordId 补贴申请支付记录ID
     * @return 补贴申请支付记录VO
     */
    LindiSubsidyApplicationPayRecordVO getSubsidyApplicationPayRecordBySubsidyApplicationPayRecordId(Long subsidyApplicationPayRecordId);

    /**
     * 根据补贴申请ID查询支付记录列表
     *
     * @param subsidyApplicationId 补贴申请ID
     * @return 支付记录列表
     */
    PageResp<LindiSubsidyApplicationPayRecordVO> getSubsidyApplicationPayRecordListBySubsidyApplicationId(Long subsidyApplicationId);
}